package com.huirui.server.generator;

import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.IdUtil;

/**
 * 订单id生成器
 */
public class OrderIdGenerator {
    // 定义数据中心ID和机器ID
    private static final long DATA_CENTER_ID = 0;
    // 通过IP地址获取机器ID，确保分布式环境中唯一
    private static final long WORKER_ID = 0;

    // 创建雪花flake实例，单例模式
    private static final Snowflake SNOWFLAKE = IdUtil.getSnowflake(WORKER_ID, DATA_CENTER_ID);

    // 生成带年月日前缀的雪花ID
    public static String generateId() {
        // 获取当前日期，格式为：年份后两位+月份+日期（如250924表示2025年09月24日）
        String datePrefix = DateUtil.format(DateUtil.date(), "yyMMdd");
        // 生成雪花ID
        long snowflakeId = SNOWFLAKE.nextId();
        // 拼接成最终格式
        return datePrefix + "-" + snowflakeId;
    }
}
